//
// Created on 6/3/25.
//
// Node APIs are not fully supported. To solve the compilation error of the interface cannot be found,
// please include "napi/native_api.h".

#ifndef NEURONVIEW_TRACKBALLMANIPULATOR_H
#define NEURONVIEW_TRACKBALLMANIPULATOR_H
#include "manipulator.h"
#include "Event.h"
#include "trackball.h"
class TrackballManipulator:public Manipulator {
public:
    TrackballManipulator(int w,int h);
    ~TrackballManipulator();
    glm::mat4 GetMatrix();
    void handle(std::shared_ptr<Event> event);
    float GetScale(){return m_scale;}

private:
    std::shared_ptr<Trackball>m_Trackball;
    float m_scale=1.0;
    float m_PreDist=0;
};

#endif //NEURONVIEW_TRACKBALLMANIPULATOR_H
